<?php

namespace App\Http\Controllers\Admin\Attribute;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class AttributeController extends Controller
{
    //属性列表展示
    public function getIndex($id)
    {
    	//查询属性表中的值
    	$data = DB::table('attribute') -> where('type_id', $id) -> get();
    	//查询传过去的id 所属于的类型的名称
    	$type_name = DB::table('type') -> where('id', $id) -> first();

    	return view('admin.attribute.list',['title' => '类型属性','data' => $data, 'type_name' => $type_name]);
    }

    //属性添加页面展示
    public function getAdd($id)
    {
    	//查询传过去的id 所属于的类型的名称
    	$type_name = DB::table('type') -> where('id', $id) -> first();
    	return view('admin.attribute.add',['title' => '属性添加','type_name' => $type_name]);
    }

    public function postInsert(Request $request,$id)
    {
	    $this->validate($request, [
	        'attr_name' => 'required',
    	],[
    		'attr_name.required' => '属性名称不能为空',
    	]);
    	$data = $request -> except('_token');
    	//处理中文逗号
    	$data['attr_option_values'] = str_replace('，', ',' ,$data['attr_option_values']);
    	$data['type_id'] = $id;
    	$res = DB::table('attribute') -> insert($data);
    	if($res)
    	{
    		return redirect('admin/attribute/index/' . $id) -> with(['info' => '添加成功']);
    	}else
    	{
    		return back() -> with(['info' => '添加失败']);
    	}

    }
    //属性编辑页面展示
    public function getEdit($arr_id,$type_id)
    {
    	$data = DB::table('attribute') -> where('id', $arr_id) -> first();
    	//查询传过去的id 所属于的类型的名称
    	$type_name = DB::table('type') -> where('id', $type_id) -> first();
    	
    	return view('admin.attribute.edit',['title' => '属性编辑','data' => $data,'type_name' => $type_name,'arr_id'=> $arr_id]);
    }

    //属性编辑功能
    public function postUpdate(Request $request, $type_id, $arr_id)
    {
	    $this->validate($request, [
	        'attr_name' => 'required',
    	],[
    		'attr_name.required' => '属性名称不能为空',
    	]);
    	$data = $request -> except('_token');
    	$data['type_id'] =  $type_id;
    	
    	$res = DB::table('attribute') -> where('id', $arr_id) -> update($data);
    	if($res)
    	{
    		return redirect('admin/attribute/index/' . $type_id) -> with(['info' => '编辑成功']);
    	}else{
    		return back() -> with(['info' => '编辑失败']);
    	}
    }
    //属性删除功能
    public function getDelete($arr_id,$type_id)
    {
    	$res = DB::table('attribute') -> where('id', $arr_id) ->delete();
    	if($res)
    	{
    		return redirect('admin/attribute/index/' . $type_id) ->with(['info' => '删除成功']);
    	}else
    	{
    		return back() -> with(['info' => '删除失败']);
    	}
    }
}
